﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using middleware.dominio;
using middleware.dominio.negocio;

namespace middleware
{
    public partial class VentanaPrincipal : Form
    {
        public VentanaPrincipal()
        {
            InitializeComponent();
        }

        private void VentanaPrincipal_Load(object sender, EventArgs e)
        {
            VentanaLogin v = new VentanaLogin();
            v.ShowDialog(this);

            //Controlo si existe usuario logueado
            this.existeUsuarioLogueado();
        }

        private void bandejasDeEntradaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            VentanaBandejasEntrada v = new VentanaBandejasEntrada();
            v.ShowDialog(this);
        }

        private void bandejasDeSalidaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            VentanaBandejasSalida v = new VentanaBandejasSalida();
            v.ShowDialog(this);
        }

        private void reglasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            VentanaReglas v = new VentanaReglas();
            v.ShowDialog(this);
        }

        private void lecturaMensajesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            VentanaEjecucion v = new VentanaEjecucion();
            v.ShowDialog(this);
        }

        private void historicoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            VentanaHistorico v = new VentanaHistorico();
            v.ShowDialog(this);
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void logToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            VentanaLog v = new VentanaLog();
            v.ShowDialog(this);
        }

        private void cerrarSesionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //Seteo en nulo el usuario logueado
            BusinessFactory.getMiddleware().SetUsuarioLogueado(null);
            //Oculto opciones de menu
            this.setearVisibilidad(false);
            //Muestro la ventana de login
            VentanaLogin v = new VentanaLogin();
            v.ShowDialog(this);
            this.existeUsuarioLogueado();
        }

        private void existeUsuarioLogueado()
        {
            if (BusinessFactory.getMiddleware().GetUsuarioLogueado() != null)
            {
                cerrarSesionToolStripMenuItem.Text = "Cerrar Sesion";
                this.setearVisibilidad(true);
                //Controlo si el usuario logueado es administrador
                if (BusinessFactory.getMiddleware().GetUsuarioLogueado().grupo.Equals("Administrador"))
                    logToolStripMenuItem.Visible = true;
                else
                    logToolStripMenuItem.Visible = false;
            }
            else
            {
                cerrarSesionToolStripMenuItem.Text = "Iniciar Sesion";
                //Oculto opciones de menu
                this.setearVisibilidad(false);
            }
        }

        private void setearVisibilidad(bool valor)
        {
            administrarToolStripMenuItem.Visible = valor;
            ejecuctarToolStripMenuItem.Visible = valor;
            consultarToolStripMenuItem.Visible = valor;
        }

        private void consultasDinamicasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            VentanaConsultaDinamica v = new VentanaConsultaDinamica();
            v.ShowDialog(this);
        }
    }
}
